package com.jyxd.web.hiscz.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@ApiModel("接收头部信息")
@Data
public class HeaderDto {

    @JsonProperty(value = "Version")
    @ApiModelProperty("[必填]协议版本号(固定值1.1)")
    private String version;

    @JsonProperty(value = "TransferType")
    @ApiModelProperty("[可空]传输类型(如果为空，则默认为'Sync')")
    private String transferType;

    @JsonProperty(value = "Callback")
    @ApiModelProperty("[可空]回调地址")
    private String callback;

    @JsonProperty(value = "TranCode")
    @ApiModelProperty("[必填]服务代码，按实际填写，建议在现场可配置")
    private String tranCode;

    @JsonProperty(value = "LicId")
    @ApiModelProperty("[必填]授权码，按实际填写，建议在现场可配置")
    private String licId;

    @JsonProperty(value = "ContentType")
    @ApiModelProperty("[必填]消息类型(text/json或text/HL7)，按实际填写，建议在现场可配置")
    private String contentType;

    @JsonProperty(value = "ContentEncoding")
    @ApiModelProperty("[可空]消息格式")
    private String contentEncoding;

    @JsonProperty(value = "OrgId")
    @ApiModelProperty("[必填]服务调用方所属院区代码，按实际填写，建议在现场可配置")
    private String orgId;

    @JsonProperty(value = "AppId")
    @ApiModelProperty("[必填]服务调用方系统代码，按实际填写，建议在现场可配置")
    private String appId;

    @JsonProperty(value = "RecOrgId")
    @ApiModelProperty("[必填]服务提供方所属院区代码，按实际填写，建议在现场可配置")
    private String recOrgId;

    @JsonProperty(value = "RecAppId")
    @ApiModelProperty("[必填]服务提供方系统代码，按实际填写，建议在现场可配置")
    private String recAppId;

    @JsonProperty(value = "MessageId")
    @ApiModelProperty("[必填]消息唯一ID，需要调用方生成GUID(可用于后续消息追溯)")
    private String messageId;

    @JsonProperty(value = "AppType")
    @ApiModelProperty("[必填]客户端类型（PC：电脑，PD：平板，MP：手机）")
    private String appType;

    @JsonProperty(value = "SecurityPolicy")
    @ApiModelProperty("[可空]加密策略")
    private String securityPolicy;

    @JsonProperty(value = "SecurityContent")
    @ApiModelProperty("[可空]加密策略需要的内容(如公钥)")
    private String securityContent;

    @JsonProperty(value = "Timestamp")
    @ApiModelProperty("[必填]请求消息生成的时间戳(精确到毫秒)，格式：2017-03-23 14:22:49.727")
    private String timestamp;

    //返回值
    @JsonProperty(value = "AckCode")
    @ApiModelProperty("结果代码")
    private String ackCode;

    @JsonProperty(value = "AckMessage")
    @ApiModelProperty("结果代码")
    private String ackMessage;

    public HeaderDto(){}

    public HeaderDto(String ackCode,String ackMessage){
        this.ackCode = ackCode;
        this.ackMessage = ackMessage;
    }
}
